#ifndef FILE_DIFF_LIST_H_INCLUDED
#define FILE_DIFF_LIST_H_INCLUDED

#include <wx/listctrl.h>
#include <wx/gdicmn.h>
#include <wx/gauge.h>
#include <wx/thread.h>
class FileDiffList: public wxListCtrl, wxThreadHelper
{
public:
    FileDiffList(wxWindow* parent, wxWindowID id,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize, long style = wxLC_ICON,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxListCtrlNameStr);

    int Reload(const wxString & dirPath);

    int LoadDst(const wxString & dstPath);

    void Resize(const wxSize & size);

    int Sync(bool needDelete);

private:

    bool ChangeStatus(long itemIndex);

    bool SameFile(const wxString & src,
                  const wxString & dst);

    virtual wxThread::ExitCode Entry();

private:

    wxString m_srcDir;
    wxString m_dstDir;
    bool m_needDelete = false;
};

#endif // FILE_DIFF_LIST_H_INCLUDED
